package com.example.pomelo_home.controller;

import com.example.pomelo_home.dto.ActivityDTO;
import com.example.pomelo_home.dto.ActivityTypeOrderCountDto;
import com.example.pomelo_home.entity.Activity;
import com.example.pomelo_home.service.ActivityService;
import com.example.pomelo_home.utils.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/activity")
public class ActivityController {
    @Autowired
    ActivityService activityService;

    //活动类型对应订单数量图表（管理）
    @GetMapping("/count-by-activity-type")
    public List<ActivityTypeOrderCountDto> getCountByActivityType() {
        return activityService.getCountByActivityType();
    }


    //分页查询所有活动（管理）
    @GetMapping("/findAllByPaged")
    public Result findAllByPaged(Integer page, Integer size){
        return Result.success(activityService.findAllByPaged(page,size));

    }
    //分页模糊查询活动名（管理）
    @GetMapping("findByTitleLike")
    public Result findAllByTitleLike(ActivityDTO activityDTO) {
        if(activityDTO.getTitle()==null){
            return Result.success(activityService.findAllByPaged(activityDTO.getPage(),activityDTO.getSize()));
        }
        return Result.success(activityService.findByTitleLike(activityDTO));
    }
    //添加活动（管理）
    @GetMapping("/addActivity")
    public Result addActivity(ActivityDTO activityDTO){
        Boolean aBoolean= activityService.addActivity(activityDTO);
        if(aBoolean){
            return Result.success(activityService.findAllByPaged(activityDTO.getPage(),activityDTO.getSize()));
        }else {
            return Result.error();
        }

    }

    //修改活动（管理）
    @GetMapping("/updateActivity")
    public Result updateActivity(ActivityDTO activityDTO){
        Boolean aBoolean= activityService.updateActivity(activityDTO);
        if(aBoolean){
            return Result.success();
        }else {
            return Result.error();
        }

    }
    //删除活动（管理）
    @GetMapping("/deleteById")
    public Result deleteById(Integer id){
        Boolean deleteById= activityService.deleteById(id);
        if(deleteById){
            return Result.success(deleteById);
        }else {
            return Result.error();
        }

    }

    //查询所有活动（小程序）
    @GetMapping("/findAll")
    public Result findAll() {
        return Result.success(activityService.findAll());
    }

    //根据id查询活动信息（小程序）
    @GetMapping("/findActivity")
    public Result findActivity(Integer id) {
        if(id==null){
            return Result.success(activityService.findAll());
        }
        return Result.success(activityService.findActivity(id));
    }
}
